class Solution {
    // public String longestCommonPrefix(String[] strs) {
    //     // 两两比较：比较两个字符串，得到最长公共前缀
    //     String ret = strs[0];
    //     for (int i = 1; i < strs.length; i++) {
    //         String s = strs[i];
    //         int j = 0;
    //         // 满足两者都不越界的情况
    //         while (j < ret.length() && j < s.length()) {
    //             if (ret.charAt(j) != s.charAt(j)) {
    //                 break;
    //             }
    //             j++;
    //         }
    //         // 更新最长公共前缀
    //         ret = ret.substring(0, j);
    //     }
    //     return ret;
    // }


    public String longestCommonPrefix(String[] strs) {
        // 统一比较：比较全部字符串的每个字符
        String ret = strs[0];
        for (int i = 0; i < ret.length(); i++) {
            char ch = ret.charAt(i);
            // 依次比较后面的元素相同位置是否是相同的字符
            for (int j = 1; j < strs.length; j++) {
                // 如果到达字符串的末尾了 或者 字符串的字符不相等了，直接返回即可
                if (i == strs[j].length() || ch != strs[j].charAt(i)) {
                    return ret.substring(0, i);
                }
            }
        }
        return strs[0]; // 说明所有的元素都是相同的
    }
}